package com.ev.scm.dao;

import com.ev.scm.domain.CommutationInitializationDO;
import com.ev.scm.vo.AccountCheckingVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 往来初始化
 * @author ev-monitor
 * @email 286600136@qq.com
 * @date 2020-03-18 10:48:36
 */
@Mapper
public interface CommutationInitializationDao {

	CommutationInitializationDO get(Long id);
	
	List<CommutationInitializationDO> list(Map<String, Object> map);
	
	int count(Map<String, Object> map);
	
	int save(CommutationInitializationDO commutationInitialization);
	
	int update(CommutationInitializationDO commutationInitialization);

	int updateAll(CommutationInitializationDO commutationInitialization);
	
	int remove(Long id);
	
	int batchRemove(Long[] ids);

	List<Map<String, Object>> getListForMap(Map<String, Object> map);

	int countForMap(Map<String, Object> map);

	List<Map<String, Object>> getDetail(Map<String, Object> map);

	Map<String, Object> getDetailByClientOrSupplierId(Map<String, Object> map);

    List<Map<String, Object>> disposeBill(Map<String, Object> parameter);

	List<Map<String, Object>> disposeSaleBill(Map<String, Object> parameter);

	List<AccountCheckingVO> getBillPayable(@Param("supplierId")Long supplierId);

	List<AccountCheckingVO> getPaymentPayable(@Param("sign") String sign,@Param("supplierId")Long supplierId);

	List<AccountCheckingVO> getOtherPayable(@Param("sign")String sign,@Param("supplierId")Long supplierId);

	AccountCheckingVO getInitData(@Param("supplierId")Long supplierId,@Param("clientId")Long clientId);

	List<AccountCheckingVO> getSalesBillPayable(@Param("clientId")Long clientId);
}
